package com.ruoyi.pcj.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mashuai.utils.toolkit.core.msMp.MsDb;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;

import java.util.Arrays;

import com.ruoyi.pcj.mapper.PcjSysUserMapper;
import com.ruoyi.pcj.domain.PcjSysUser;
import com.ruoyi.pcj.service.IPcjSysUserService;

import java.util.Map;

import com.ruoyi.basis.utils.mp.MpPageUtils;

/**
 * 用户信息Service业务层处理
 *
 * @author ms
 * @date 2024-03-14
 */
@Service
public class PcjSysUserServiceImpl extends ServiceImpl<PcjSysUserMapper, PcjSysUser> implements IPcjSysUserService {

    @Override
    public <E extends IPage<PcjSysUser>> E page(E page, Wrapper<PcjSysUser> qw) {
        return baseMapper.selectPage(page, qw);
    }

    /**
     * 查询用户信息列表
     *
     * @param params 聊天室-查询参数 {"pageNum":1,"pageSize":10}
     * @return 用户信息
     */
    @Override
    public IPage<PcjSysUser> selectSysUserList(Map<String, Object> params) {
        //获取条件构造器
        QueryWrapper<PcjSysUser> qw = new QueryWrapper<>();
        //分页查询
        Page<PcjSysUser> page = this.page(MpPageUtils.getPage(params), qw);
        return page;
    }


    /**
     * 根据id查询用户信息
     *
     * @param userId 用户信息主键
     * @return 用户信息
     */
    @Override
    public PcjSysUser selectSysUserByUserId(Long userId) {
        //首先获取主表信息
        PcjSysUser sysUser = MsDb.getById(userId, PcjSysUser.class);
        return sysUser;
    }

    /**
     * 回填子表信息
     **/

    /**
     * 新增用户信息
     *
     * @param sysUser 用户信息
     * @return 结果
     */
    @Override
    public Boolean insertSysUser(PcjSysUser sysUser) {
        //插入主表

        return true;
    }

    /**
     * 修改用户信息
     *
     * @param sysUser 用户信息
     * @return 结果
     */
    @Override
    public Boolean updateSysUser(PcjSysUser sysUser) {
        //修改主表
        return true;
    }

    /**
     * 批量删除用户信息
     *
     * @param userIds 需要删除的用户信息主键
     * @return 结果
     */
    @Override
    public Boolean deleteSysUserByUserIds(Long[] userIds) {

        //删除主表
        Boolean success = this.removeBatchByIds(Arrays.asList(userIds));
        return success;
    }
    /**
     * 根据主表id，删除子表所有数据
     **/
    /**
     * 对外提供的设置默认字段值，id为空新增，不为空更新
     **/
    @Override
    public void setEntityDefValAuto(PcjSysUser sysUser) {

    }
}
